1. Technical Field
This invention generally relates to data processing, and more specifically relates to performance enhancement in a logically partitioned computer system.
2. Background Art
Computer systems typically include a combination of hardware and software. The combination of hardware and software on a particular computer system defines a computing environment. Different hardware platforms and different operating systems thus provide different computing environments. In recent years, engineers have recognized that it is possible to provide different computing environments on the same physical computer system by logically partitioning the computer system resources into different computing environments. The eServer iSeries computer system developed by IBM is an example of a computer system that supports logical partitioning. If logical partitioning on an eServer iSeries computer system is desired, partition manager code (referred to as a “hypervisor” in IBM terminology) is installed that allows defining different computing environments on the same platform. Once the partition manager is installed, logical partitions may be created that define different computing environments. The partition manager manages the logical partitions to assure that they can share needed resources in the computer system while maintaining the separate computing environments defined by the logical partitions.
A computer system that includes multiple logical partitions typically shares resources between the logical partitions. For example, a computer system with a single CPU could have two logical partitions defined, with 50% of the CPU allocated to each logical partition, with 33% of the memory allocated to the first logical partition and 67% of the memory allocated to the second logical partition, and with two different I/O slots allocated to the two logical partitions, one per partition. Once logical partitions are defined and shared resources are allocated to the logical partitions, each logical partition acts as a separate computer system. Thus, in the example above that has a single computer system with two logical partitions, the two logical partitions will appear for all practical purposes to be two separate and distinct computer systems.
More recently, dynamic allocation of resources among logical partitions has been made possible. Some IBM computer systems support dynamic logical partitioning (DLPAR), which allows resources (such as CPUs and memory) to be dynamically allocated to or from logical partitions while the logical partitions are running. This ability to dynamically allocate resources can affect performance of computer software running within the logical partitions. For example, an application server running in a logical partition may have a thread pool size and heap size that is selected to provide the best performance assuming a given allocation of resources. If the allocation of resources dynamically changes, the application server will be unaware of the change, and the thread pool size and heap size that was originally selected for the application may provide less-than-optimal performance with a new allocation of resources in the logical partition that runs the application server. The result is an application server that does not run as efficiently as it could due to changing resources in the logical partition that runs the application server. Without a way to make computer software aware of changes in resource allocation in a logical partition, thereby allowing the computer software to autonomically change one or more configuration settings that determine the performance of the computer software, the computer industry will continue to suffer from static computer software that is oblivious to changes in resource allocation in a logical partition that runs the computer software.